如何设计简易的抗弱碰撞哈希函数

您所在的位置:网站首页 ctf 逆向 如何设计简易的抗弱碰撞哈希函数

如何设计简易的抗弱碰撞哈希函数

#如何设计简易的抗弱碰撞哈希函数| 来源: 网络整理| 查看: 265

这里介绍法

公式思路如下

this_hash=( (R*last_hash).operateX( f(Magic_Num, this_block) ) ) % M

看似有点复杂,我们一步步讲,保证0基础看懂

operateX指的是某种运算,可以是加减乘除四则运算,也可以是位运算,也可以是更复杂的运算组合

这个运算的左操作数为R*last_hash,右操作数为函数f()的返回值

函数f的参数:

Magic_Num不多说,随意定的一个值就行

this_block是本轮hash加密的加密块的内容

M是hash表的表长

这里分为三个理解阶段,在数学上并不严谨,但对我们的理解非常有帮助

首先我们规定,待处理的原数据是长度和内容随机的字符串

字符范围为大小写字母和十个阿拉伯数字,以ASCII表示

接下来我们举一个用上面公式衍生出来的例子

//main.cpp int hash = 0; //这里我们应当将hash变量理解为计数器 //这里的计数器指的是计算从自然数N累加到自然数M这一操作所需的那个中间变量;而非计数器这一数据结构 for(int i = 0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3